import request from '@/utils/request';
import exportRequest from '@/utils/exportRequest';

/**
 * 新增系统邀请码活动
 * @param {number} data.createTime 创建时间
 * @param {string} data.edition 服务版本 standard 标准,professional 专业,advanced 高级 ,trial 试用
 * @param {number} data.endTime 有效期止
 * @param {number} data.haveCode 已有邀请码数量
 * @param {number} data.inviteId 活动ID
 * @param {string} data.inviteName 活动名称
 * @param {number} data.notHaveCode 已兑换邀请码数量
 * @param {number} data.number 每店可用码数
 * @param {number} data.remark 备注
 * @param {number} data.startTime 有效期起
 * @param {number} data.status 状态 0失效 1正常 2未开始 3进行中 4已结束
 * @param {number} data.type 活动类型 1服务版本
 * @param {number} data.year 年
 **/
export async function apiAddInviteActive(data) {
  return request.post('/goods/invite/add', data);
}

/**
 * 获取系统邀请码活动列表
 * @param {number} params.inviteName 活动名称
 * @param {number} params.pageNum 页码
 * @param {number} params.pageSize 每页数量
 **/
export async function apiGetInviteList(params) {
  return request.get('/goods/invite/list', { params });
}

/**
 * 编辑系统邀请码活动
 **/
export async function apiEditInvite(data) {
  return request.post('/goods/invite/edit', data);
}

/**
 * 失效系统邀请码活动
 * @param {number} params.inviteId 活动邀请码ID
 **/
export async function apiEditInviteLose(params) {
  return request.get('/goods/invite/invalidInvite', { params });
}

/**
 * 邀请码库列表
 * @param {number} params.inviteId 活动邀请码ID
 * @param {string} params.like 模糊搜索参数
 * @param {number} params.status 状态 0作废 1未使用 2已使用
 * @param {number} params.useStartTime 使用开始时间查询参数
 * @param {number} params.useEndTime 使用结束时间查询参数
 * @param {number} params.pageNum 页码
 * @param {number} params.pageSize 每页数量
 **/
export async function apiGetInviteCodeList(params) {
  return request.get('/goods/invite/selectSysInviteCodeList', { params });
}

/**
 * 生成邀请码
 * @param {number} data.inviteId 活动邀请码ID
 * @param {number} data.number 每人所需数量
 * @param {number} data.userId 绑定员工
 **/
export async function apiCreateInvideCode(data) {
  return request.post('/goods/invite/saveInviteCode', data);
}

/**
 * 作废邀请码
 * @param {number} params.inviteId 活动邀请码ID
 **/
export async function apiEditInvideCodeLose(params) {
  return request.get('/goods/invite/invalidCode', { params });
}

/**
 * 获取系统邀请码 详细信息
 * @param {number} params.inviteId 活动邀请码ID
 **/
export async function apiGetInviteDetail(params) {
  return request.get('/goods/invite/getInfo', { params });
}

/**
 * 导出码库
 * @param {number} params.inviteId 活动邀请码ID
 * @param {string} params.like 模糊搜索参数
 * @param {number} params.status 状态 0作废 1未使用 2已使用
 * @param {number} params.useStartTime 使用开始时间查询参数
 * @param {number} params.useEndTime 使用结束时间查询参数
 **/
export async function apiExportInvideCodeLibrary(params) {
  return exportRequest.get('/goods/invite/exportSysInviteCodeList', { params });
}
